package com.xjrsoft.module.system.vo;

import com.alibaba.excel.annotation.ExcelProperty;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
import org.hibernate.validator.constraints.Range;

import javax.validation.constraints.NotNull;

/**
 * @author hnyyzy
 * @version 1.0
 * @date 2024/3/11 9:39
 */
@Data
public class MenuExportVo {

    @ApiModelProperty("上级Id")
    @ExcelProperty("上级Id")
    private Long parentId = 0L;

    @Length(min = 1,max = 20,message = "组件名称不能大于20个字符！")
    @ApiModelProperty("组件名（路由名称） --  与vue代码组件名必须一直 才能做到缓存页面 相关联")
    @ExcelProperty("组件名称(*)")
    private String name;

    @NotNull(message = "菜单名称不能为空!")
    @Length(max = 20,message = "菜单名称不能大于20个字符！")
    @ApiModelProperty("菜单名称")
    @ExcelProperty("菜单名称(*)")
    private String title;

    @NotNull(message = "菜单编码不能为空!")
    @Length(max = 20,message = "菜单编码不能大于20个字符！")
    @ApiModelProperty("菜单名称(*)")
    private String code;

    @Length(max = 50,message = "菜单图标不能大于20个字符！")
    @ApiModelProperty("菜单图标")
    @ExcelProperty("菜单图标")
    private String icon;

    @NotNull(message = "路由地址不能为空!")
    @Length(max = 100,message = "路由地址不能大于100个字符！")
    @ApiModelProperty("路由地址")
    @ExcelProperty("路由地址")
    private String path;

    //    @NotNull(message = "组件地址不能为空!")
    @Length(max = 100,message = "组件地址不能大于100个字符！")
    @ApiModelProperty("组件路径")
    @ExcelProperty("组件路径")
    private String component;

    @NotNull(message = "组件类型不能为空!")
    @ApiModelProperty("组件类型")
    @ExcelProperty("组件类型，0-页面，1-菜单")
    private Integer menuType;

    @Range(min = 0,max = 1,message = "菜单显示或者隐藏只能是0 或者 1！")
    @ApiModelProperty("菜单隐藏-0，显示-1")
    @ExcelProperty("菜单隐藏-0，显示-1")
    private Integer display;

    @Range(min = 0,max = 1,message = "菜单是否为外链只能是0 或者 1！")
    @ApiModelProperty("是否外链")
    @ExcelProperty("是否外链")
    private Integer outLink;

    @ApiModelProperty("外链地址")
    @ExcelProperty("外链地址")
    private String iframeSrc;

    @ApiModelProperty("排序码")
    @ExcelProperty("排序码")
    private Integer sortCode;

    @Length(max = 255,message = "备注不能大于255个字符！")
    @ApiModelProperty("备注")
    @ExcelProperty("备注")
    private String remark;

    @Range(min = 0,max = 1,message = "菜单是否为缓存只能是0 或者 1！")
    @ApiModelProperty("启用状态")
    @ExcelProperty("启用状态(*)")
    private Integer enabledMark;

    @ApiModelProperty("系统主键")
    @ExcelProperty("所属系统id(*)")
    private Long systemId = 1L;

}
